package com.up360.rapidcalc.box
{
	import com.up360.rapidcalc.global.LayerManager;
	
	import flash.display.MovieClip;

	/**
	 * 作者:郎福涛
	 * 日期:2012-4-5 上午10:13:07
	 * 说明:弹出框管理
	 */
	public class BoxManager
	{
		/**
		 * 禁止操作的次数,防止弹出多个框时,关掉第一个框就可以操作其它内容
		 */		
		private static var forbidHandleTime:int=0;
		/**
		 * 提示框,警告框
		 * @param ui 弹出框ui
		 * @param text 文字内容,可使用as3支持的html样式
		 * @param isForbidHandle 是否禁用其它内容的鼠标操作
		 * @param onOK 确定按钮点击回调方法,有一个Object类型参数
		 * @param onOKParams 确定按钮点击回调方法函数
		 * @param textValignInCenter 文本框是否上下对齐,上下对齐的位置相对于UI中绘制的文本框的范围,注意不要设置文本框初始的autoSize属性
		 */	
		public static function alert(ui:MovieClip,title:String=null,msg:String=null,isForbidHandle:Boolean=true,onOK:Function=null,onOKParams:Array=null,textValignInCenter:Boolean=true):void{
			if(isForbidHandle){
				forbidHandleTime++;
				if(forbidHandleTime==1){
					LayerManager.forbidMainLayerHandle();
				}
			}
			var b_box:AlertBox=new AlertBox(ui,title,msg,isForbidHandle,onOK,onOKParams,textValignInCenter);
		}
		/**
		 * 确认框
		 * @param ui 弹出框ui
		 * @param text 文字内容,可使用as3支持的html样式
		 * @param isForbidHandle 是否禁用其它内容的鼠标操作
		 * @param onOK 确定按钮点击回调方法,有一个Object类型参数
		 * @param onOKParams 确定按钮点击回调方法函数
		 * @param onCancel 取消按钮点击回调方法函数
		 * @param onCancelParams 取消按钮点击回调方法函数
		 * @param textValignInCenter 文本框是否在上下对齐,上下对齐的位置相对于UI中绘制的文本框的范围 
		 */	
		public static function confirm(ui:MovieClip,msg:String=null,title:String=null,isForbidHandle:Boolean=true,onOK:Function=null,onOKParams:Array=null,onCancel:Function=null,onCancelParam:Array=null,textValignInCenter:Boolean=true):void{
			if(isForbidHandle){
				forbidHandleTime++;
			}
			var b_box:ConfirmBox=new ConfirmBox(ui,msg,title,isForbidHandle,onOK,onOKParams,onCancel,onCancelParam,textValignInCenter);
		}
		
		public static function openSpecialBox(ui:MovieClip):void{
			
		}
		/**
		 * 关闭销毁弹出框,请确保此处为关闭弹出框的唯一方法
		 * @param box 要关闭的弹出框
		 */		
		public static function closeBox(box:BaseBox):void{
			if(box.isForbidHandle){
				forbidHandleTime--;
				if(forbidHandleTime==0){
					LayerManager.resumeMainLayerHandle();
				}
			}
			box.dispose();
		}
		
	}
}